package mock

import "fmt"

//Retriever
/*
模拟的接收者 MockRetriever
因go在使用该包下的struct时会携带包名(mock.MockRetriever), 故命名时应简写为Retriever(mock.Retriever)

*/
type Retriever struct {
	Contents string
}

//接收指针, 以便修改原值
func (r *Retriever) Post(url string,
	form map[string]string) string {
	r.Contents = form["contents"]
	return "ok"
}

// Get
/*
实现 cmd 下的Retriever接口(interface)
*/
func (r *Retriever) Get(url string) string {
	return r.Contents
}

//type Stringer interface
//实现 toString() 方法
func (r *Retriever) String() string {
	return fmt.Sprintf(
		"Retriever: {自定义toString方法=%s}", r.Contents)
}
